#
# Copyright 2006-2010 The Apache Software Foundation.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# Find generated headers in the build directory;
# find everything else in the source directory (always with full path)
AM_CPPFLAGS = -I$(top_builddir) -I$(top_srcdir)

noinst_PROGRAMS = ${samples}
bin_PROGRAMS = ${tools}

AM_CXXFLAGS += $(xerces_CXXFLAGS) $(xalan_CXXFLAGS)
LDADD = libxml-security-c.la $(xerces_LIBS) $(xalan_LIBS)

#
# The following are sample programs.  They are NOT installed
#

samples =

# HMAC sign

samples += xsec-simpleHMAC
xsec_simpleHMAC_SOURCES = \
  samples/simpleHMAC.cpp \
  samples/IOStreamOutputter.cpp \
  samples/IOStreamOutputter.hpp

# HMAC validate

samples += xsec-simpleValidate
xsec_simpleValidate_SOURCES = \
  samples/simpleValidate.cpp \
  samples/IOStreamOutputter.cpp \
  samples/IOStreamOutputter.hpp

# Encrypt

samples += xsec-simpleEncrypt
xsec_simpleEncrypt_SOURCES = \
  samples/simpleEncrypt.cpp \
  samples/IOStreamOutputter.cpp \
  samples/IOStreamOutputter.hpp
xsec_simpleEncrypt_CXXFLAGS = $(AM_CXXFLAGS) \
  $(openssl_CFLAGS)
xsec_simpleEncrypt_LDADD = $(LDADD) \
  $(openssl_LIBS)

# Decrypt

samples += xsec-simpleDecrypt
xsec_simpleDecrypt_SOURCES = \
  samples/simpleDecrypt.cpp \
  samples/IOStreamOutputter.cpp \
  samples/IOStreamOutputter.hpp
xsec_simpleDecrypt_CXXFLAGS = $(AM_CXXFLAGS) \
  $(openssl_CFLAGS)
xsec_simpleDecrypt_LDADD = $(LDADD) \
  $(openssl_LIBS)

#
# Finally we compile the tools that can be used to manipulate
# XML Security inputs and outputs
#

tools =

# xtest

tools += xsec-xtest
xsec_xtest_SOURCES = \
   tools/xtest/xtest.cpp
xsec_xtest_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS
xsec_xtest_CXXFLAGS = $(AM_CXXFLAGS) \
   $(nss_CFLAGS) \
   $(openssl_CFLAGS)
xsec_xtest_LDADD = $(LDADD) \
   $(nss_LIBS) \
   $(openssl_LIBS)

tools += xsec-c14n
xsec_c14n_SOURCES = \
   tools/c14n/c14n.cpp
xsec_c14n_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS

tools += xsec-checksig
xsec_checksig_SOURCES = \
   tools/checksig/checksig.cpp \
   tools/checksig/AnonymousResolver.hpp \
   tools/checksig/AnonymousResolver.cpp \
   tools/checksig/InteropResolver.hpp \
   tools/checksig/InteropResolver.cpp
xsec_checksig_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS
xsec_checksig_CXXFLAGS = $(AM_CXXFLAGS) \
   $(nss_CFLAGS) \
   $(openssl_CFLAGS)
xsec_checksig_LDADD = $(LDADD) \
   $(nss_LIBS) \
   $(openssl_LIBS)

tools += xsec-templatesign
xsec_templatesign_SOURCES = \
   tools/templatesign/templatesign.cpp
xsec_templatesign_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS
xsec_templatesign_CXXFLAGS = $(AM_CXXFLAGS) \
   $(openssl_CFLAGS)
xsec_templatesign_LDADD = $(LDADD) \
   $(openssl_LIBS)

tools += xsec-txfmout
xsec_txfmout_SOURCES = \
   tools/txfmout/txfmout.cpp
xsec_txfmout_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS

tools += xsec-siginf
xsec_siginf_SOURCES = \
   tools/siginf/siginf.cpp
xsec_siginf_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS

tools += xsec-cipher
xsec_cipher_SOURCES = \
   tools/cipher/cipher.cpp \
   tools/cipher/XencInteropResolver.hpp \
   tools/cipher/XencInteropResolver.cpp
xsec_cipher_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS
xsec_cipher_CXXFLAGS = $(AM_CXXFLAGS) \
   $(nss_CFLAGS) \
   $(openssl_CFLAGS)
xsec_cipher_LDADD = $(LDADD) \
   $(nss_LIBS) \
   $(openssl_LIBS)

if XSEC_AM_HAVE_XKMS
tools += xsec-xklient
xsec_xklient_SOURCES = \
   tools/xklient/xklient.cpp \
   enc/OpenSSL/OpenSSLSupport.hpp
xsec_xklient_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_TOOLS
xsec_xklient_CXXFLAGS = $(AM_CXXFLAGS) \
   $(openssl_CFLAGS)
xsec_xklient_LDADD = $(LDADD) \
   $(openssl_LIBS)
endif

libxml_security_c_la_CPPFLAGS = $(AM_CPPFLAGS) -DXSEC_BUILDING_LIBRARY

libxml_security_c_la_CXXFLAGS = \
   $(xalan_CXXFLAGS) \
   $(xerces_CXXFLAGS) \
   $(openssl_CFLAGS) \
   $(nss_CFLAGS) \
   $(PTHREAD_CFLAGS)

libxml_security_c_la_LIBADD = \
   $(xalan_LIBS) \
   $(xerces_LIBS) \
   $(openssl_LIBS) \
   $(nss_LIBS) \
   $(PTHREAD_LIBS)

lib_LTLIBRARIES = libxml-security-c.la

xsecincludedir = $(includedir)/xsec
canonincludedir = $(includedir)/xsec/canon
encincludedir = $(includedir)/xsec/enc
xscryptincludedir = $(includedir)/xsec/enc/XSCrypt
opensslincludedir = $(includedir)/xsec/enc/OpenSSL
nssincludedir = $(includedir)/xsec/enc/NSS
dsigincludedir = $(includedir)/xsec/dsig
frameworkincludedir = $(includedir)/xsec/framework
transformersincludedir = $(includedir)/xsec/transformers
utilsincludedir = $(includedir)/xsec/utils
unixutilsincludedir = $(includedir)/xsec/utils/unixutils
xencincludedir = $(includedir)/xsec/xenc
xkmsincludedir = $(includedir)/xsec/xkms


# The required include files

#       A line like the following will generate a list of headers
#       for a given directory: (must be issued from base directory)
#
# find src/framework -name '*.hpp' -exec echo {} \\ ";" | sed "s/src/  xsec/g"

# Canon

canoninclude_HEADERS = \
  canon/XSECXMLNSStack.hpp \
  canon/XSECCanon.hpp \
  canon/XSECC14n20010315.hpp

# enc

encinclude_HEADERS = \
  enc/XSECCryptoKeyHMAC.hpp \
  enc/XSECCryptoX509.hpp \
  enc/XSECCryptoKeyDSA.hpp \
  enc/XSECCryptoKeyEC.hpp \
  enc/XSECKeyInfoResolver.hpp \
  enc/XSECCryptoHash.hpp \
  enc/XSECCryptoBase64.hpp \
  enc/XSECCryptoSymmetricKey.hpp \
  enc/XSECCryptoKey.hpp \
  enc/XSECCryptoProvider.hpp \
  enc/XSECKeyInfoResolverDefault.hpp \
  enc/XSECCryptoKeyRSA.hpp \
  enc/XSECCryptoException.hpp \
  enc/XSECCryptoUtils.hpp

xscryptinclude_HEADERS = \
  enc/XSCrypt/XSCryptCryptoBase64.hpp

opensslinclude_HEADERS = \
  enc/OpenSSL/OpenSSLCryptoBase64.hpp \
  enc/OpenSSL/OpenSSLCryptoSymmetricKey.hpp \
  enc/OpenSSL/OpenSSLCryptoProvider.hpp \
  enc/OpenSSL/OpenSSLCryptoKeyRSA.hpp \
  enc/OpenSSL/OpenSSLCryptoX509.hpp \
  enc/OpenSSL/OpenSSLCryptoHashHMAC.hpp \
  enc/OpenSSL/OpenSSLCryptoKeyDSA.hpp \
  enc/OpenSSL/OpenSSLCryptoKeyEC.hpp \
  enc/OpenSSL/OpenSSLCryptoKeyHMAC.hpp \
  enc/OpenSSL/OpenSSLCryptoHash.hpp \
  enc/OpenSSL/OpenSSLSupport.hpp

nssinclude_HEADERS = \
  enc/NSS/NSSCryptoX509.hpp \
  enc/NSS/NSSCryptoHashHMAC.hpp \
  enc/NSS/NSSCryptoKeyDSA.hpp \
  enc/NSS/NSSCryptoKeyHMAC.hpp \
  enc/NSS/NSSCryptoHash.hpp \
  enc/NSS/NSSCryptoSymmetricKey.hpp \
  enc/NSS/NSSCryptoProvider.hpp \
  enc/NSS/NSSCryptoKeyRSA.hpp 

dsiginclude_HEADERS = \
  dsig/DSIGKeyInfoSPKIData.hpp \
  dsig/DSIGXPathHere.hpp \
  dsig/DSIGAlgorithmHandlerDefault.hpp \
  dsig/DSIGXPathFilterExpr.hpp \
  dsig/DSIGKeyInfoX509.hpp \
  dsig/DSIGKeyInfoList.hpp \
  dsig/DSIGKeyInfoValue.hpp \
  dsig/DSIGKeyInfoDEREncoded.hpp \
  dsig/DSIGTransformC14n.hpp \
  dsig/DSIGTransformXSL.hpp \
  dsig/DSIGKeyInfo.hpp \
  dsig/DSIGKeyInfoPGPData.hpp \
  dsig/DSIGKeyInfoExt.hpp \
  dsig/DSIGObject.hpp \
  dsig/DSIGTransformList.hpp \
  dsig/DSIGTransform.hpp \
  dsig/DSIGTransformBase64.hpp \
  dsig/DSIGTransformXPath.hpp \
  dsig/DSIGKeyInfoMgmtData.hpp \
  dsig/DSIGSignedInfo.hpp \
  dsig/DSIGTransformXPathFilter.hpp \
  dsig/DSIGReferenceList.hpp \
  dsig/DSIGReference.hpp \
  dsig/DSIGSignature.hpp \
  dsig/DSIGKeyInfoName.hpp \
  dsig/DSIGTransformEnvelope.hpp \
  dsig/DSIGConstants.hpp

frameworkinclude_HEADERS = \
  framework/XSECAlgorithmHandler.hpp \
  framework/XSECURIResolver.hpp \
  framework/XSECDefs.hpp \
  framework/XSECEnv.hpp \
  framework/XSECException.hpp \
  framework/XSECError.hpp \
  framework/XSECProvider.hpp \
  framework/XSECURIResolverXerces.hpp \
  framework/XSECAlgorithmMapper.hpp \
  framework/XSECW32Config.hpp \
  framework/XSECVersion.hpp

nodist_frameworkinclude_HEADERS = \
  framework/XSECConfig.hpp

transformersinclude_HEADERS = \
  transformers/TXFMXPathFilter.hpp \
  transformers/TXFMHash.hpp \
  transformers/TXFMParser.hpp \
  transformers/TXFMOutputFile.hpp \
  transformers/TXFMURL.hpp \
  transformers/TXFMBase.hpp \
  transformers/TXFMChar.hpp \
  transformers/TXFMCipher.hpp \
  transformers/TXFMEnvelope.hpp \
  transformers/TXFMChain.hpp \
  transformers/TXFMDocObject.hpp \
  transformers/TXFMConcatChains.hpp \
  transformers/TXFMSB.hpp \
  transformers/TXFMC14n.hpp \
  transformers/TXFMXSL.hpp \
  transformers/TXFMXPath.hpp \
  transformers/TXFMBase64.hpp

utilsinclude_HEADERS = \
  utils/XSECSafeBuffer.hpp \
  utils/XSECSOAPRequestor.hpp \
  utils/XSECTXFMInputSource.hpp \
  utils/XSECNameSpaceExpander.hpp \
  utils/XSECSOAPRequestorSimple.hpp \
  utils/XSECXPathNodeList.hpp \
  utils/XSECSafeBufferFormatter.hpp \
  utils/XSECBinTXFMInputStream.hpp \
  utils/XSECPlatformUtils.hpp 

xencinclude_HEADERS = \
  xenc/XENCEncryptionMethod.hpp \
  xenc/XENCEncryptedType.hpp \
  xenc/XENCCipherData.hpp \
  xenc/XENCEncryptedKey.hpp \
  xenc/XENCCipherValue.hpp \
  xenc/XENCEncryptedData.hpp \
  xenc/XENCCipherReference.hpp \
  xenc/XENCCipher.hpp

xkmsinclude_HEADERS = \
  xkms/XKMSNotBoundAuthentication.hpp \
  xkms/XKMSValidateResult.hpp \
  xkms/XKMSValidityInterval.hpp \
  xkms/XKMSStatusRequest.hpp \
  xkms/XKMSRegisterRequest.hpp \
  xkms/XKMSPendingRequest.hpp \
  xkms/XKMSCompoundRequest.hpp \
  xkms/XKMSUseKeyWith.hpp \
  xkms/XKMSValidateRequest.hpp \
  xkms/XKMSUnverifiedKeyBinding.hpp \
  xkms/XKMSLocateResult.hpp \
  xkms/XKMSRespondWith.hpp \
  xkms/XKMSQueryKeyBinding.hpp \
  xkms/XKMSPrototypeKeyBinding.hpp \
  xkms/XKMSKeyBindingAbstractType.hpp \
  xkms/XKMSMessageAbstractType.hpp \
  xkms/XKMSMessageFactory.hpp \
  xkms/XKMSConstants.hpp \
  xkms/XKMSRequestAbstractType.hpp \
  xkms/XKMSResult.hpp \
  xkms/XKMSAuthentication.hpp \
  xkms/XKMSLocateRequest.hpp \
  xkms/XKMSResultType.hpp \
  xkms/XKMSStatusResult.hpp \
  xkms/XKMSKeyBinding.hpp \
  xkms/XKMSCompoundResult.hpp \
  xkms/XKMSRegisterResult.hpp \
  xkms/XKMSResponseMechanism.hpp \
  xkms/XKMSStatus.hpp \
  xkms/XKMSRevokeRequest.hpp \
  xkms/XKMSRevokeResult.hpp \
  xkms/XKMSRecoverKeyBinding.hpp \
  xkms/XKMSRevokeKeyBinding.hpp \
  xkms/XKMSRSAKeyPair.hpp \
  xkms/XKMSRecoverResult.hpp \
  xkms/XKMSReissueResult.hpp \
  xkms/XKMSRecoverRequest.hpp \
  xkms/XKMSReissueRequest.hpp \
  xkms/XKMSReissueKeyBinding.hpp


libxml_security_c_la_SOURCES = ${lib_sources}

lib_sources =

# canon

lib_sources += ${canon_sources}

# Signature

lib_sources += ${dsig_sources}

# Main encryption sources

lib_sources += ${enc_sources}

# Framework sources

lib_sources += ${framework_sources}

# transformers

lib_sources += ${txfm_sources}

# Utility sources

lib_sources += ${utils_sources}

# XML Encryption

lib_sources += ${xenc_sources}

# XML Key Management
if XSEC_AM_HAVE_XKMS
  lib_sources += ${xkms_sources}
endif

#
# The following blocks are conditionally added on the basis
# of selections made during the "configure" operation

if XSEC_AM_HAVE_OPENSSL
  lib_sources += ${openssl_sources}
endif

if XSEC_AM_HAVE_NSS
  lib_sources += ${nss_sources}
endif

# Sources are build up using a find command:
#
# find xsec/transformers/ -name '*.cpp' -exec echo {} \\ ";" | sed "s/xsec\//  ..\/xsec\//g"

# canon

canon_sources = \
  canon/XSECC14n20010315.cpp \
  canon/XSECXMLNSStack.cpp \
  canon/XSECCanon.cpp

# Signature

dsig_sources = \
  dsig/DSIGKeyInfoPGPData.cpp \
  dsig/DSIGReferenceList.cpp \
  dsig/DSIGKeyInfoValue.cpp \
  dsig/DSIGKeyInfoDEREncoded.cpp \
  dsig/DSIGXPathHere.cpp \
  dsig/DSIGAlgorithmHandlerDefault.cpp \
  dsig/DSIGXPathFilterExpr.cpp \
  dsig/DSIGKeyInfoMgmtData.cpp \
  dsig/DSIGTransformXPathFilter.cpp \
  dsig/DSIGSignedInfo.cpp \
  dsig/DSIGKeyInfoList.cpp \
  dsig/DSIGConstants.cpp \
  dsig/DSIGSignature.cpp \
  dsig/DSIGTransformXSL.cpp \
  dsig/DSIGObject.cpp \
  dsig/DSIGTransformXPath.cpp \
  dsig/DSIGTransformEnvelope.cpp \
  dsig/DSIGKeyInfoName.cpp \
  dsig/DSIGTransformBase64.cpp \
  dsig/DSIGReference.cpp \
  dsig/DSIGKeyInfoSPKIData.cpp \
  dsig/DSIGTransformList.cpp \
  dsig/DSIGKeyInfoX509.cpp \
  dsig/DSIGKeyInfoExt.cpp \
  dsig/DSIGTransform.cpp \
  dsig/DSIGTransformC14n.cpp

# Main Crypto interface routines

enc_sources = \
  enc/XSECCryptoX509.cpp \
  enc/XSECKeyInfoResolverDefault.cpp \
  enc/XSECCryptoUtils.cpp \
  enc/XSECCryptoBase64.cpp \
  enc/XSCrypt/XSCryptCryptoBase64.cpp \
  enc/XSECCryptoException.cpp

# Framework files

framework_sources = \
  framework/XSECError.cpp \
  framework/XSECAlgorithmMapper.cpp \
  framework/XSECEnv.cpp \
  framework/XSECProvider.cpp \
  framework/XSECException.cpp \
  framework/XSECURIResolverXerces.cpp

txfm_sources = \
  transformers/TXFMBase.cpp \
  transformers/TXFMChain.cpp \
  transformers/TXFMCipher.cpp \
  transformers/TXFMParser.cpp \
  transformers/TXFMSB.cpp \
  transformers/TXFMEnvelope.cpp \
  transformers/TXFMBase64.cpp \
  transformers/TXFMXPathFilter.cpp \
  transformers/TXFMHash.cpp \
  transformers/TXFMC14n.cpp \
  transformers/TXFMURL.cpp \
  transformers/TXFMOutputFile.cpp \
  transformers/TXFMXPath.cpp \
  transformers/TXFMXSL.cpp \
  transformers/TXFMDocObject.cpp \
  transformers/TXFMConcatChains.cpp \
  transformers/TXFMChar.cpp

# Utility files.  Note we don't worry about checking
# if the UNIX stuff is necessary - we just assume that
# we are running on a *NIX system because compiling under
# make.  Cygwin compiles use the UNIX utilities, not windows

utils_sources = \
  utils/XSECAlgorithmSupport.hpp \
  utils/XSECAlgorithmSupport.cpp \
  utils/XSECAutoPtr.hpp \
  utils/XSECBinTXFMInputStream.cpp \
  utils/XSECXPathNodeList.cpp \
  utils/XSECSafeBuffer.cpp \
  utils/XSECTXFMInputSource.cpp \
  utils/XSECDOMUtils.hpp \
  utils/XSECDOMUtils.cpp \
  utils/XSECSafeBufferFormatter.cpp \
  utils/XSECNameSpaceExpander.cpp \
  utils/XSECPlatformUtils.cpp \
  utils/XSECSOAPRequestorSimple.cpp \
  utils/unixutils/XSECSOAPRequestorSimpleUnix.cpp

# XML Encryption

xenc_sources = \
  xenc/impl/XENCCipherReferenceImpl.cpp \
  xenc/impl/XENCEncryptionMethodImpl.cpp \
  xenc/impl/XENCEncryptedKeyImpl.hpp \
  xenc/impl/XENCCipherValueImpl.cpp \
  xenc/impl/XENCCipherImpl.hpp \
  xenc/impl/XENCAlgorithmHandlerDefault.hpp \
  xenc/impl/XENCCipherDataImpl.hpp \
  xenc/impl/XENCEncryptionMethodImpl.hpp \
  xenc/impl/XENCAlgorithmHandlerDefault.cpp \
  xenc/impl/XENCEncryptedDataImpl.cpp \
  xenc/impl/XENCEncryptedTypeImpl.hpp \
  xenc/impl/XENCCipherDataImpl.cpp \
  xenc/impl/XENCEncryptedDataImpl.hpp \
  xenc/impl/XENCCipherValueImpl.hpp \
  xenc/impl/XENCEncryptedTypeImpl.cpp \
  xenc/impl/XENCCipherImpl.cpp \
  xenc/impl/XENCEncryptedKeyImpl.cpp \
  xenc/impl/XENCCipherReferenceImpl.hpp

# XML Key Management
xkms_sources = \
  xkms/XKMSConstants.cpp \
  xkms/impl/XKMSCompoundRequestImpl.cpp \
  xkms/impl/XKMSRevokeKeyBindingImpl.hpp \
  xkms/impl/XKMSRecoverRequestImpl.cpp \
  xkms/impl/XKMSRegisterResultImpl.cpp \
  xkms/impl/XKMSRecoverResultImpl.cpp \
  xkms/impl/XKMSValidateResultImpl.hpp \
  xkms/impl/XKMSRevokeResultImpl.hpp \
  xkms/impl/XKMSCompoundResultImpl.cpp \
  xkms/impl/XKMSRevokeKeyBindingImpl.cpp \
  xkms/impl/XKMSCompoundResultImpl.hpp \
  xkms/impl/XKMSUnverifiedKeyBindingImpl.hpp \
  xkms/impl/XKMSKeyBindingAbstractTypeImpl.cpp \
  xkms/impl/XKMSQueryKeyBindingImpl.hpp \
  xkms/impl/XKMSPrototypeKeyBindingImpl.cpp \
  xkms/impl/XKMSValidateResultImpl.cpp \
  xkms/impl/XKMSRSAKeyPairImpl.hpp \
  xkms/impl/XKMSAuthenticationImpl.cpp \
  xkms/impl/XKMSNotBoundAuthenticationImpl.hpp \
  xkms/impl/XKMSCompoundRequestImpl.hpp \
  xkms/impl/XKMSPendingRequestImpl.hpp \
  xkms/impl/XKMSStatusResultImpl.cpp \
  xkms/impl/XKMSStatusImpl.hpp \
  xkms/impl/XKMSRegisterRequestImpl.hpp \
  xkms/impl/XKMSReissueRequestImpl.cpp \
  xkms/impl/XKMSKeyBindingImpl.cpp \
  xkms/impl/XKMSUseKeyWithImpl.hpp \
  xkms/impl/XKMSRequestAbstractTypeImpl.cpp \
  xkms/impl/XKMSRespondWithImpl.cpp \
  xkms/impl/XKMSResponseMechanismImpl.hpp \
  xkms/impl/XKMSResultImpl.hpp \
  xkms/impl/XKMSReissueResultImpl.cpp \
  xkms/impl/XKMSAuthenticationImpl.hpp \
  xkms/impl/XKMSMessageAbstractTypeImpl.cpp \
  xkms/impl/XKMSRevokeResultImpl.cpp \
  xkms/impl/XKMSStatusResultImpl.hpp \
  xkms/impl/XKMSReissueKeyBindingImpl.hpp \
  xkms/impl/XKMSRespondWithImpl.hpp \
  xkms/impl/XKMSRevokeRequestImpl.cpp \
  xkms/impl/XKMSPendingRequestImpl.cpp \
  xkms/impl/XKMSRecoverResultImpl.hpp \
  xkms/impl/XKMSValidateRequestImpl.cpp \
  xkms/impl/XKMSStatusRequestImpl.hpp \
  xkms/impl/XKMSRecoverRequestImpl.hpp \
  xkms/impl/XKMSRecoverKeyBindingImpl.cpp \
  xkms/impl/XKMSRSAKeyPairImpl.cpp \
  xkms/impl/XKMSMessageAbstractTypeImpl.hpp \
  xkms/impl/XKMSUnverifiedKeyBindingImpl.cpp \
  xkms/impl/XKMSValidityIntervalImpl.hpp \
  xkms/impl/XKMSLocateResultImpl.hpp \
  xkms/impl/XKMSLocateRequestImpl.cpp \
  xkms/impl/XKMSResultTypeImpl.cpp \
  xkms/impl/XKMSRecoverKeyBindingImpl.hpp \
  xkms/impl/XKMSResultImpl.cpp \
  xkms/impl/XKMSValidityIntervalImpl.cpp \
  xkms/impl/XKMSRegisterRequestImpl.cpp \
  xkms/impl/XKMSReissueResultImpl.hpp \
  xkms/impl/XKMSStatusImpl.cpp \
  xkms/impl/XKMSReissueRequestImpl.hpp \
  xkms/impl/XKMSStatusRequestImpl.cpp \
  xkms/impl/XKMSReissueKeyBindingImpl.cpp \
  xkms/impl/XKMSKeyBindingImpl.hpp \
  xkms/impl/XKMSValidateRequestImpl.hpp \
  xkms/impl/XKMSKeyBindingAbstractTypeImpl.hpp \
  xkms/impl/XKMSResultTypeImpl.hpp \
  xkms/impl/XKMSMessageFactoryImpl.cpp \
  xkms/impl/XKMSRevokeRequestImpl.hpp \
  xkms/impl/XKMSResponseMechanismImpl.cpp \
  xkms/impl/XKMSNotBoundAuthentication.cpp \
  xkms/impl/XKMSLocateRequestImpl.hpp \
  xkms/impl/XKMSLocateResultImpl.cpp \
  xkms/impl/XKMSRequestAbstractTypeImpl.hpp \
  xkms/impl/XKMSQueryKeyBindingImpl.cpp \
  xkms/impl/XKMSUseKeyWithImpl.cpp \
  xkms/impl/XKMSMessageFactoryImpl.hpp \
  xkms/impl/XKMSPrototypeKeyBindingImpl.hpp \
  xkms/impl/XKMSRegisterResultImpl.hpp
  
# Conditional crypto routines

openssl_sources = \
  enc/OpenSSL/OpenSSLCryptoHashHMAC.cpp \
  enc/OpenSSL/OpenSSLCryptoKeyRSA.cpp \
  enc/OpenSSL/OpenSSLCryptoHash.cpp \
  enc/OpenSSL/OpenSSLCryptoProvider.cpp \
  enc/OpenSSL/OpenSSLCryptoX509.cpp \
  enc/OpenSSL/OpenSSLCryptoBase64.cpp \
  enc/OpenSSL/OpenSSLCryptoKeyDSA.cpp \
  enc/OpenSSL/OpenSSLCryptoKeyEC.cpp \
  enc/OpenSSL/OpenSSLCryptoSymmetricKey.cpp \
  enc/OpenSSL/OpenSSLCryptoKeyHMAC.cpp \
  enc/OpenSSL/OpenSSLSupport.cpp

nss_sources = \
  enc/NSS/NSSCryptoX509.cpp \
  enc/NSS/NSSCryptoHashHMAC.cpp \
  enc/NSS/NSSCryptoHash.cpp \
  enc/NSS/NSSCryptoKeyDSA.cpp \
  enc/NSS/NSSCryptoProvider.cpp \
  enc/NSS/NSSCryptoSymmetricKey.cpp \
  enc/NSS/NSSCryptoKeyRSA.cpp \
  enc/NSS/NSSCryptoKeyHMAC.cpp

#
# Now the library specific build items
#
libxml_security_c_la_LDFLAGS = -version-info 20:4:0

EXTRA_DIST = \
  utils/winutils/XSECSOAPRequestorSimpleWin32.cpp \
  enc/WinCAPI/WinCAPICryptoProvider.cpp \
  enc/WinCAPI/WinCAPICryptoKeyHMAC.hpp \
  enc/WinCAPI/WinCAPICryptoHash.cpp \
  enc/WinCAPI/WinCAPICryptoKeyDSA.cpp \
  enc/WinCAPI/WinCAPICryptoHashHMAC.hpp \
  enc/WinCAPI/WinCAPICryptoKeyDSA.hpp \
  enc/WinCAPI/WinCAPICryptoSymmetricKey.hpp \
  enc/WinCAPI/WinCAPICryptoX509.hpp \
  enc/WinCAPI/WinCAPICryptoKeyRSA.hpp \
  enc/WinCAPI/WinCAPICryptoX509.cpp \
  enc/WinCAPI/WinCAPICryptoHashHMAC.cpp \
  enc/WinCAPI/WinCAPICryptoHash.hpp \
  enc/WinCAPI/WinCAPICryptoKeyRSA.cpp \
  enc/WinCAPI/WinCAPICryptoProvider.hpp \
  enc/WinCAPI/WinCAPICryptoSymmetricKey.cpp \
  enc/WinCAPI/WinCAPICryptoKeyHMAC.cpp
